Preview
¹YYYYYEEEAAAAHHHH !! ²HERE IS OUR PERFORMANCE-INTRO !! IN THE UPPER
EDGE OF THE SCREEN YOU CAN SEE OUR PHOTOS PIXELED INTO THE COMPUTER BY TCA. WELL,
FIRST THE INSTRUCTIONS FOR THIS INTRO. 1. WHEN THE INTRO IS UNPACKING,
RUN FAST INTO THE KITCHEN,OPEN THE REFRIGERATOR AND GET SOME COLD DRINKS AND ANY
SWEETS. 2. RUN BACK AND CHANGE THE HEIGHT OF YOUR SEAT TO THE OPTIMAL VIEW.
3. LEAN BACK - GET YOUR SWEETS AND ENJOY THIS INTRO(DUCTION). 4. IF YOU ARE
BORED, YOU CAN WATCH OUR DIFFERENT MEANINGS, STATEMENTS AND INTRODUCTIONS BY PRESSING
³F1 - F2 AND F3. ² 5. BY PRESSING F4 AND F5 YOU CAN CHANGE THE MUSIC. 6.IF
YOU DON'T ENJOY THIS, YOU MUST BE A DIFFERENT,STRANGE TYPE OF HUMAN. NOW SOME
CREDITS: A BIG THANKS MUST GO TO NOISE s²FOR SENDING
THE SOURCES ABOUT THE FONTS. NOW SOME INTERNAL CREDITS :
PROGRAMMING : ³TCA ²(WITH THE HELP OF A TETRAGON INTRO) MUSIC : HARD'N'HEAVY AND
³JAWS ²(FIRST WE WANTED TO PUT IT INTO A GAME) ³MADE BY TCA² GRAPHICS : RIPPED
OUT OF STREET SPORTS BASKETBALL AND CHANGED BY TCA, TOO. FONT : ³KNIGHT HAWKS ²
(GOT FROM NOISE) MANAGEMENT - FOUNDER - ORGANIZER : ³ELECTRICA ² SWAPPING :
³ELECTRICA AND MLP ² SCROLLTEXT : ³ELECTRICA - MLP - TCA ² I (TCA)
THANK MYSELF,ELECTRICA AND MY DISK-DRIVE FOR THE MORAL SUPPORT DURING THE PROGRAMMING.
¹FURTHER THANKS GO TO: ²COMMODORE,ANDELOS COMPUTERS,TETRAGON,NOISE,HIGHSPEED,
PROFEX AND NORD GETRAENKE. AND AGAIN LIKE IN THE OTHER INTROS NOW THE
COMMERCIAL PART. ¹HHHHEEEERRRE WEEE GOO : ² PEPSI - THE TASTE OF
AMERICA - COULD IT BE YOURS > CARCHARODON - THE GAME OF THE CENTURY
(AVAILABLE AT X-MAS 1988) LEVIS 501 VERBATIM 2-DD DISKS
O.K. ENOUGH DONE FOR OUR MONEY !! NOW SOME PRIVATE SLOGANS OF US :³
THE COMMODORE ACE - ALWAYS CREATIVITY IN MIND !! MLP - THE LEFT FORCE !
ELECTRICA - THE GENIUS ² IF YOU WANT TO CONTACT US THEN WRITE TO:³
TSB s³ PLK A s³ 019261 s³ 3060 s³ STADTHAGENs³ FRG s²
³NOW OUR HANDSHAKES GO TO: ² ALCATRAZ (WHY DON'T YOU SEND SOMETHING AT THE
MOMENT >) - ALF - ALPHAFLIGHT - AMIGAVISION (STILL ALIVE>) - BRAINWALKER - CBC AND
BAND - DEATHSTAR - LEVEL FOUR - HIGHSPEED - MADONNA ASSOCIATION (FOR THE LAST TIME >)
- MEGADEATH - MEGAFORCE - NCS - NETWORK NORWAY - NOISE - PIT - POGO OF THE ACCUMULATORS
- PROPHETS AG (THE SAME AS AMIGAVISION) - SECOND FOUNDATION - THE GANG - THUNDERCREW
- WOODPEAKERS - QUARTEX ........................ AND NOW A SPDOPD (SHIT) SPEZIAL
(SCHEISSE) SPECIAL GREETING TO HIGHSPEED (NICE GRAFIX MADE BY THUNDERPIG!!) O.K.
WE HATE LONG BORING SCROLLTEXTS (WHAT A LIE, WATCH THE THING-INTRO) BUT WE MUST STOP
NOW.......................³SO LONG !!! YOURS : TSB 1988 s²
NOW IT STARTS AGAIN !! æ PRESS F1 - F2 OR F3 TO WATCH DIFFERENT
INFORMATIONS ABOUT THE PERSONS IN OUR GROUP ......... BY PRESSING F4 AND F5 YOU CAN
CHANGE THE MUSIX ................
ELECTRICA : HELLO GUYS !!!!! NOW IT'S TIME FOR THE ORGANIZER,
FOUNDER AND CONTROLLER OF THIS SMASHING GROUP !! I CAN'T WRITE BECAUSE THERE IS DOMINOE
DANCING BY THE KETCHUP BOYS IN THE BACKGROUND !!! NOW SOMETHING ABOUT MEINE
WENIGKEIT !! FIRST I HAD AN ATARI 2600 THEN A C64 AND NOW I AM THE OWNER OF THE
MOST POWERFUL (!>!) COMPUTER CALLED : AMIGA 1000 !!!! MLP IS NOW VERY HAPPY BECAUSE
THERE ARE TWO SCHACHTELN OF 'SPRENGEL SCHOKOLADE' !!! BYE-BYE AND SO LONG,
YOURS ELECTRICA.
TCA+ : HERE IS THE MOST INTERESTING PERSON OF TSB !! (MODESTY
ISN'T MY BEST STRENGTH) WELL,I'M THE MOST ENERGETICALLY PERSON IN THE UNIVERSE.
I'M THE PROGRAMMER (WATCH THIS!) - UNBEATABLE IN SOUNDS AND SYNTHETIC MUSIC AND AT LAST
I MADE THIS PICCY ABOVE (CHANGED FROM THE GAME 'STREET SPORTS BASKETBALL'). O.K. YOU
SEE WITH ME,WE WILL RULE THE WHOLE GALAXY (E.T. WE ARE COMING!!). WELL,IN THESE
DIFFICULT TIMES WE PERFORMED ALL OUR STRENGTH TOGETHER AND WE BUILT UP A NEW CREW 'THE
SPECIAL BROTHERS'. NOW ANYTHING TO MY PERSON. I LIKE FILMS LIKE THESE : THE ROCKY
HORROR PICTURE SHOW - BLUE VELVET - AND SOME OTHER STUFF (BORING,EH>) WELL,IF YOU
HAVE ANY STICKERS - POSTERS OR SOMETHING FROM THE ROCKY HORROR PICTURE SHOW SEND IT TO :
TSB PLK A 019261 3060 STADTHAGEN WEST-GERMANY............
.......... WELL,MY CAREER BEGAN WITH A FASCINATING VIDEO-GAME CALLED 'MATTEL
INTELLIVISION' (FUCK ATARI VCS 2600!!). BUT I WAS SLIGHTLY BORED,'CAUSE I COULDN'T
CREATE ANYTHING OWN ON THIS BOX. THEN I'VE GOT A FRIEND WHO HAD A COMMODORE 64,AT
THAT TIME A NEARLY UNKNOWN COMPUTER.(THE MOST PEOPLE THOUGHT THE TI-994A FROM TEXAS
INSTRUMENTS WERE BETTER).BUT WHEN I SAW THE GAMES ON THE C64 (GALAGA-GREENHOUSE
(UUUAARRGHH!!)) I WAS TOTALLY OUT OF CONTROL.SO I WALKED NEARLY EVERY DAY TO THE NEXT
COMPUTER-SHOP TO PLAY AND PROGRAM ON THE VC 20 AND THE VC 64.THEN I HAD CONFIRMATION AND
I HAD ENOUGH MONEY TO GET A REAL GOOD SYSTEM. A 64'ER WITH PRINTER,SPEED-DOS,DATASETTE
AND DISK-DRIVE.I TRIED TO PROGRAM SOME THINGS IN BASIC BUT IT FAILED.AFTER THAT I
PLAYED NEARLY EVERY DAY FROM 12 P.M. TO 1 A.M. GAMES AND WATCHED AT DEMOS (I LOVED ALL
1001 CREW DEMOS!!). BUT AT ONE DAY I SAW 6502 ASSEMBLER AND I TRIED IT WITH THE GOOD
OLD SMON. AND FINALLY I COULD PRESENT MY FIRST INTRO. WELL, FLICKERING AND
WITH ONLY THREE SPRITES BUT IT WAS A GREAT IMPROVEMENT TO BASIC. THE NEXT TWO YEARS I
GOT BETTER AND BETTER,BUT WHEN I WAS REALLY GREAT THE WHOLE WORLD TURNED OVER TO THE
GREAT AMIGA.AND AS I SAW THAT MACHINE IN THE SCHOOL I WAS DREAMING THE WHOLE DAY OF
PROGRAMS ON THE AMIGA.THEN I SOLD MY GOOD OLD C64 AND BOUGHT THE AMIGA.I STARTED WITH
ASSEMBLER AND KICKED BASIC AWAY.AND I FOUND ASSEMBLER QUITE EASY ON IT.WELL,THE RESULT
IS THIS NICE LITTLE PROGRAM WITH MY MUSIC,MY GRAPHICS AND MY ROUTINES (ONLY THE FONT IS
I THINK FROM THE KNIGHT HAWKS). NOW I'VE NO MORE TO SAY. WATCH THIS
AGAIN.
MLP : HI LEUTE HIER DIE STORY VON MLP. FIRST I HAD A HAMSTER
AND THEN AGAIN A HAMSTER AND AFTER THAT A PHILLIPS TELESPIEL. THEN I GAMED WITH THE CBS
TELESPIEL AND AFTER THAT I WENT ON PROFFESSIONAL WITH THE COMMODORE PC 128 ABOUT WHICH
I WAS VERY PROUD. FINALLY I BOUGHT MY DREAM-COMPUTER THE ARCHIMEDES AEH...SHIT...
AMIGA !! HERE IS MY INTRODUCING LINE : I'M ONE OF THE CREATIVE (>) MEMBERS OF TSB
(SOUNDS,GRAFIX AND SO ON). WRITE TO ME: MLP POSTLAGERND 3262 AUETAL-BORSTEL.
NEXT,I MAKE THE MUZAK FOR CARCHARODON,THE ULTIMATE BALLERFUN. THE BEST BALLERGAME
EVER SEEN (COMING SOON AT X-MAS). THAT'S ALL !!
BE YOURS > CARCHARODON - "
DC.B "THE GAME OF THE CENTURY (AVAILABLE AT X-MAS 1988) "
DC.B " LEVIS 501 VERBATIM 2-DD DISKS "
DC.B "O.K. ENOUGH DONE FOR OUR MONEY !! NOW SOME PRIVATE"
DC.B " SLOGANS OF US :³ THE COMMODORE ACE - ALWAYS CREA"
DC.B "TIVITY IN MIND !! MLP - THE LEFT FORCE ! "
DC.B "ELECTRICA - THE GENIUS ² IF YOU WANT TO CONTACT "
DC.B "US THEN WRITE TO:³ TSB s³ PLK A s³ 0192"
DC.B "61 s³ 3060 s³ STADTHAGENs³ FRG s² "
DC.B "³NOW OUR HANDSHAKES GO TO: ² "
DC.B "ALCATRAZ (WHY DON'T YOU SEND SOMETHING AT THE MOMENT >) "
DC.B "- ALF - ALPHAFLIGHT - AMIGAVISION (STILL ALIVE>) "
DC.B "- BRAINWALKER - CBC AND BAND - DEATHSTAR - "
DC.B "LEVEL FOUR - HIGHSPEED - MADONNA AS"
DC.B "SOCIATION (FOR THE LAST TIME >) - MEGADEATH - MEGAFORCE -"
DC.B " NCS - NETWORK NORWAY - NOISE - PIT - POGO OF "
DC.B "THE ACCUMULATORS - PROPHETS AG (THE SAME AS AMIGAVISION) "
DC.B "- SECOND FOUNDATION"
DC.B " - THE GANG - THUNDERCREW - WOODPEAKERS - QUAR"
DC.B "TEX ........................ AND NOW A SPDOPD (SHIT) SPEZ"
DC.B "IAL (SCHEISSE) SPECIAL GREETING TO HIGHSPEED (NICE GRAFIX"
DC.B " MADE BY THUNDERPIG!!) O.K. WE HATE LONG BORING SC"
DC.B "ROLLTEXTS (WHAT A LIE, WATCH THE THING-INTRO) BUT WE MUST"
DC.B " STOP NOW.......................³SO LONG !!! YOURS "
DC.B ": TSB 1988 s² NOW IT STARTS AGAIN !! "
DC.B " æ"
string2:
DC.B " PRESS F1 - F2 OR F3 TO WATCH DIFFERENT INFORMATIONS "
DC.B "ABOUT THE PERSONS IN OUR GROUP ......... BY PRESSING "
DC.B "F4 AND F5 YOU CAN CHANGE THE MUSIX ................ ",0
string2a:
DC.B " "
DC.B "ELECTRICA : "
DC.B "HELLO GUYS !!!!! NOW IT'S TIME FOR THE ORGANIZER,FOUNDER"
DC.B " AND CONTROLLER OF THIS SMASHING GROUP !! I CAN'T WRITE"
DC.B " BECAUSE THERE IS DOMINOE DANCING BY THE KETCHUP BOYS IN"
DC.B " THE BACKGROUND !!! NOW SOMETHING ABOUT MEINE WENIGKEIT "
DC.B "!! FIRST I HAD AN ATARI 2600 THEN A C64 AND NOW I "
DC.B "AM THE OWNER OF THE MOST POWERFUL (!>!) COMPUTER CALLED "
DC.B ": AMIGA 1000 !!!! MLP IS NOW VERY HAPPY BECAUSE THERE A"
DC.B "RE TWO SCHACHTELN OF 'SPRENGEL SCHOKOLADE' !!! BYE-BYE"
DC.B " AND SO LONG, YOURS ELECTRICA. ",0
string2b:
DC.B " "
DC.B "TCA+ : HERE IS THE MOST INTERESTING PERSON OF"
DC.B " TSB !! (MODESTY ISN'T MY BEST STRENGTH) WELL,I'M THE M"
DC.B "OST ENERGETICALLY PERSON IN THE UNIVERSE. I'M THE PRO"
DC.B "GRAMMER (WATCH THIS!) - UNBEATABLE IN SOUNDS AND SYNTHETI"
DC.B "C MUSIC AND AT LAST I MADE THIS PICCY ABOVE (CHANGED FROM"
DC.B " THE GAME 'STREET SPORTS BASKETBALL'). O.K. YOU SEE WI"
DC.B "TH ME,WE WILL RULE THE WHOLE GALAXY (E.T. WE ARE COMING!!"
DC.B "). WELL,IN THESE DIFFICULT TIMES WE PERFORMED ALL OUR S"
DC.B "TRENGTH TOGETHER AND WE BUILT UP A NEW CREW 'THE SPECIAL "
DC.B "BROTHERS'. NOW ANYTHING TO MY PERSON. I LIKE FILMS LIK"
DC.B "E THESE : THE ROCKY HORROR PICTURE SHOW - BLUE VELVET - "
DC.B "AND SOME OTHER STUFF (BORING,EH>) WELL,IF YOU HAVE ANY"
DC.B " STICKERS - POSTERS OR SOMETHING FROM THE ROCKY HORROR PI"
DC.B "CTURE SHOW SEND IT TO : TSB PLK A 019261 "
DC.B "3060 STADTHAGEN WEST-GERMANY...................... "
DC.B "WELL,MY CAREER BEGAN WITH A FASCINATING VIDEO-GAME CALLED"
DC.B " 'MATTEL INTELLIVISION' (FUCK ATARI VCS 2600!!). BUT I W"
DC.B "AS SLIGHTLY BORED,'CAUSE I COULDN'T CREATE ANYTHING OWN O"
DC.B "N THIS BOX. THEN I'VE GOT A FRIEND WHO HAD A COMMODOR"
DC.B "E 64,AT THAT TIME A NEARLY UNKNOWN COMPUTER.(THE MOST PEO"
DC.B "PLE THOUGHT THE TI-994A FROM TEXAS INSTRUMENTS WERE BETTE"
DC.B "R).BUT WHEN I SAW THE GAMES ON THE C64 (GALAGA-GREENHOUSE"
DC.B " (UUUAARRGHH!!)) I WAS TOTALLY OUT OF CONTROL.SO I WALKED"
DC.B " NEARLY EVERY DAY TO THE NEXT COMPUTER-SHOP TO PLAY AND P"
DC.B "ROGRAM ON THE VC 20 AND THE VC 64.THEN I HAD CONFIRMATION"
DC.B " AND I HAD ENOUGH MONEY TO GET A REAL GOOD SYSTEM. A 64'"
DC.B "ER WITH PRINTER,SPEED-DOS,DATASETTE AND DISK-DRIVE.I TRIE"
DC.B "D TO PROGRAM SOME THINGS IN BASIC BUT IT FAILED.AFTER THA"
DC.B "T I PLAYED NEARLY EVERY DAY FROM 12 P.M. TO 1 A.M. GAMES "
DC.B "AND WATCHED AT DEMOS (I LOVED ALL 1001 CREW DEMOS!!). BU"
DC.B "T AT ONE DAY I SAW 6502 ASSEMBLER AND I TRIED IT WITH THE"
DC.B " GOOD OLD SMON. AND FINALLY I COULD PRESENT MY FIR"
DC.B "ST INTRO. WELL, FLICKERING AND WITH ONLY THREE SPRITES"
DC.B " BUT IT WAS A GREAT IMPROVEMENT TO BASIC. THE NEXT TWO YE"
DC.B "ARS I GOT BETTER AND BETTER,BUT WHEN I WAS REALLY GREAT T"
DC.B "HE WHOLE WORLD TURNED OVER TO THE GREAT AMIGA.AND AS I SA"
DC.B "W THAT MACHINE IN THE SCHOOL I WAS DREAMING THE WHOLE DAY"
DC.B " OF PROGRAMS ON THE AMIGA.THEN I SOLD MY GOOD OLD C64 AND"
DC.B " BOUGHT THE AMIGA.I STARTED WITH ASSEMBLER AND KICKED BAS"
DC.B "IC AWAY.AND I FOUND ASSEMBLER QUITE EASY ON IT.WELL,THE R"
DC.B "ESULT IS THIS NICE LITTLE PROGRAM WITH MY MUSIC,MY GRAPHI"
DC.B "CS AND MY ROUTINES (ONLY THE FONT IS I THINK FROM THE KNI"
DC.B "GHT HAWKS). NOW I'VE NO MORE TO SAY. "
DC.B "WATCH THIS AGAIN. ",0
EVEN
string2c:
DC.B " "
DC.B "MLP : HI LEUTE HIER DIE STORY VON MLP. FIRST"
DC.B " I HAD A HAMSTER AND THEN AGAIN A HAMSTER AND AFTER THAT A"
DC.B " PHILLIPS TELESPIEL. THEN I GAMED WITH THE CBS TELESPIEL A"
DC.B "ND AFTER THAT I WENT ON PROFFESSIONAL WITH THE COMMODORE P"
DC.B "C 128 ABOUT WHICH I WAS VERY PROUD. FINALLY I BOUGHT MY D"
DC.B "REAM-COMPUTER THE ARCHIMEDES AEH...SHIT...AMIGA !! HE"
DC.B "RE IS MY INTRODUCING LINE : I'M ONE OF THE CREATIVE (>) "
DC.B "MEMBERS OF TSB (SOUNDS,GRAFIX AND SO ON). WRITE TO ME: "
DC.B "MLP POSTLAGERND 3262 AUETAL-BORSTEL. NEXT,I MA"
DC.B "KE THE MUZAK FOR CARCHARODON,THE ULTIMATE BALLERFUN. THE"
DC.B " BEST BALLERGAME EVER SEEN (COMING SOON AT X-MAS). "
DC.B "THAT'S ALL !! ",0
; USER CopperList
even
gfxcopper:
dc.w $008e,$2281,$0090,$a9c1 ; linke obere/rechte untere
; Koordinaten des BildschirmFenster
dc.w $0092,$0038,$0094,$00d0 ; DataFetch Start/Stop
dc.w $0108,$00a0,$010a,$00a0 ; Modulos fuer Grafik
dc.w $0102,$0000,$0104,$0000 ; BitPlane Control Reg. #1 u. #2
; nur wichtig bei DualPlayfield etc.
dc.w $0100,$5200 ; BitPlane Control Reg. #0
; 1 Bitplane/Farbe
; siehe Hardware Reference M.
; Anhang A-4
dc.w $00e0,$0003,$00e2,$4000 ; Zeiger auf Start der Bitplane
dc.w $00e4,$0003,$00e6,$4028
dc.w $00e8,$0003,$00ea,$4050
dc.w $00ec,$0003,$00ee,$4078
dc.w $00f0,$0003,$00f2,$40a0
pic1tab:
blk.b 128,10
dc.w $a909,$fffe
dc.w DIWSTRT,$c97b,DIWSTOP,$2fd1
dc.w DDFSTRT,$0020,DDFSTOP,$00d8
dc.w BPL1MOD,$0004,BPL2MOD,$0004
dc.w BPLCON2,%0000000001000000,BPLCON1,$0000
dc.w BPLCON0,%0100001000000000
; %5432109876543210
dc.w COLOR00,$0000,COLOR00+2,$0770
dc.w COLOR00+4,$0880,COLOR00+6,$0990
dc.w COLOR00+8,$0aa0,COLOR00+10,$0bb0
dc.w COLOR00+12,$0cc0,COLOR00+14,$0fff
dc.w COLOR00+16,$0cc0,COLOR00+18,$0bb0
dc.w COLOR00+20,$0aa0,COLOR00+22,$0990
dc.w COLOR00+24,$0880,COLOR00+26,$0770
dc.w COLOR00+28,$0660,COLOR00+30,$0fff
sprite0: dc.w SPR0PTH,$0000,SPR0PTL,$0000
dc.w SPR1PTH,$0000,SPR1PTL,$0000
dc.w SPR2PTH,$0000,SPR2PTL,$0000
dc.w SPR3PTH,$0000,SPR3PTL,$0000
dc.w SPR4PTH,$0000,SPR4PTL,$0000
dc.w SPR5PTH,$0000,SPR5PTL,$0000
dc.w SPR6PTH,$0000,SPR6PTL,$0000
dc.w SPR7PTH,$0000,SPR7PTL,$0000
planes: dc.w BPL1PTH,$0004,BPL1PTL,$0000
dc.w BPL2PTH,$0004,BPL2PTL,$3cf0
dc.w BPL3PTH,$0004,BPL3PTL,$79e0
dc.w BPL4PTH,$0004,BPL4PTL,$b6d0
dc.w BPL5PTH,$0000,BPL5PTL,$0000
dc.w BPL6PTH,$0000,BPL6PTL,$0000
dc.w $e109,$fffe
dc.w COLOR00,$0000,COLOR00+2,$0700
dc.w COLOR00+4,$0800,COLOR00+6,$0900
dc.w COLOR00+8,$0a00,COLOR00+10,$0b00
dc.w COLOR00+12,$0c00,COLOR00+14,$000f
dc.w COLOR00+16,$0c00,COLOR00+18,$0b00
dc.w COLOR00+20,$0a00,COLOR00+22,$0900
dc.w COLOR00+24,$0800,COLOR00+26,$0700
dc.w COLOR00+28,$0600,COLOR00+30,$0fff
dc.w $ffff,$fffe
gfxend:
Clsize = gfxend-gfxcopper
start_muzak1:
move.l #data1,muzakoffset ;** get offset
init0: move.l muzakoffset,a0 ;** get highest used pattern
add.l #472,a0
move.l #$80,d0
clr.l d1
init1: move.l d1,d2
subq.w #1,d0
init2: move.b (a0)+,d1
cmp.b d2,d1
bgt.s init1
dbf d0,init2
addq.b #1,d2
init3: move.l muzakoffset,a0 ;** calc samplepointers
lea pointers(pc),a1
lsl.l #8,d2
lsl.l #2,d2
add.l #600,d2
add.l a0,d2
moveq #14,d0
init4: move.l d2,(a1)+
clr.l d1
move.w 42(a0),d1
lsl.l #1,d1
add.l d1,d2
add.l #30,a0
dbf d0,init4
init5: clr.w $dff0a8 ;** clear used values
clr.w $dff0b8
clr.w $dff0c8
clr.w $dff0d8
clr.w timpos
clr.l trkpos
clr.l patpos
init6: move.l muzakoffset,a0 ;** initialize timer irq
move.b 470(a0),numpat+1 ;number of patterns
rts
start_muzak2:
move.l #data2,muzakoffset ;** get offset
move.l muzakoffset,a0 ;** get highest used pattern
add.l #472,a0
move.l #$80,d0
clr.l d1
init11: move.l d1,d2
subq.w #1,d0
init22: move.b (a0)+,d1
cmp.b d2,d1
bgt.s init11
dbf d0,init22
addq.b #1,d2
init33: move.l muzakoffset,a0 ;** calc samplepointers
lea pointers(pc),a1
lsl.l #8,d2
lsl.l #2,d2
add.l #600,d2
add.l a0,d2
moveq #14,d0
init44: move.l d2,(a1)+
clr.l d1
move.w 42(a0),d1
lsl.l #1,d1
add.l d1,d2
add.l #30,a0
dbf d0,init44
init55: clr.w $dff0a8 ;** clear used values
clr.w $dff0b8
clr.w $dff0c8
clr.w $dff0d8
clr.w timpos
clr.l trkpos
clr.l patpos
init66: move.l muzakoffset,a0 ;** initialize timer irq
move.b 470(a0),numpat+1 ;number of patterns
rts
init_irq:
move.l $6c.w,lev3save+2
move.l #lev3interrupt,$6c.w
rts
stop_muzak:
move.l lev3save+2,$6c.w
clr.w $dff0a8
clr.w $dff0b8
clr.w $dff0c8
clr.w $dff0d8
move.w #$f,$dff096
rts
lev3interrupt:
bsr.s replay_muzak
bsr irqroutine
lev3save:
jmp $0
replay_muzak:
movem.l d0-d7/a0-a6,-(a7)
addq.w #1,timpos
speed: cmp.w #6,timpos
beq.L replaystep
chaneleffects: ;** seek effects
lea datach0(pc),a6
tst.b 3(a6)
beq.s ceff1
lea $dff0a0,a5
bsr.s ceff5
ceff1: lea datach1(pc),a6
tst.b 3(a6)
beq.s ceff2
lea $dff0b0,a5
bsr.s ceff5
ceff2: lea datach2(pc),a6
tst.b 3(a6)
beq.s ceff3
lea $dff0c0,a5
bsr.s ceff5
ceff3: lea datach3(pc),a6
tst.b 3(a6)
beq.s ceff4
lea $dff0d0,a5
bsr.s ceff5
ceff4: movem.l (a7)+,d0-d7/a0-a6
rts
ceff5: move.b 2(a6),d0 ;room for some more
and.b #$f,d0 ;implementations below
tst.b d0
beq.s arpreggiato
cmp.b #1,d0
beq.L pitchup
cmp.b #2,d0
beq.L pitchdown
cmp.b #12,d0
beq.L setvol
cmp.b #14,d0
beq.L setfilt
cmp.b #15,d0
beq.L setspeed
rts
arpreggiato: ;** spread by time
cmp.w #1,timpos
beq.s arp1
cmp.w #2,timpos
beq.s arp2
cmp.w #3,timpos
beq.s arp3
cmp.w #4,timpos
beq.s arp1
cmp.w #5,timpos
beq.s arp2
rts
arp1: clr.l d0 ;** get higher note-values
move.b 3(a6),d0 ; or play original
lsr.b #4,d0
bra.s arp4
arp2: clr.l d0
move.b 3(a6),d0
and.b #$f,d0
bra.s arp4
arp3: move.w 16(a6),d2
bra.s arp6
arp4: lsl.w #1,d0
clr.l d1
move.w 16(a6),d1
lea notetable,a0
arp5: move.w (a0,d0.w),d2
cmp.w (a0),d1
beq.s arp6
addq.l #2,a0
bra.s arp5
arp6: move.w d2,6(a5)
rts
pitchdown:
bsr.s newrou
clr.l d0
move.b 3(a6),d0
and.b #$f,d0
add.w d0,(a4)
cmp.w #$358,(a4)
bmi.s ok1
move.w #$358,(a4)
ok1: move.w (a4),6(a5)
rts
pitchup:bsr.s newrou
clr.l d0
move.b 3(a6),d0
and.b #$f,d0
sub.w d0,(a4)
cmp.w #$71,(a4)
bpl.s ok2
move.w #$71,(a4)
ok2: move.w (a4),6(a5)
rts
setvol: move.b 3(a6),8(a5)
rts
setfilt:move.b 3(a6),d0
and.b #1,d0
lsl.b #1,d0
and.b #$fd,$bfe001
or.b d0,$bfe001
rts
setspeed:
clr.l d0
move.b 3(a6),d0
and.b #$f,d0
move.w d0,speed+2
rts
newrou: cmp.l #datach0,a6
bne.s next1
lea voi1(pc),a4
rts
next1: cmp.l #datach1,a6
bne.s next2
lea voi2(pc),a4
rts
next2: cmp.l #datach2,a6
bne.s next3
lea voi3(pc),a4
rts
next3: lea voi4(pc),a4
rts
replaystep: ;** work next pattern-step
clr.w timpos
move.l muzakoffset,a0
move.l a0,a3
add.l #12,a3 ;ptr to soundprefs
move.l a0,a2
add.l #472,a2 ;ptr to pattern-table
add.l #600,a0 ;ptr to first pattern
clr.l d1
move.l trkpos,d0 ;get ptr to current pattern
move.b (a2,d0),d1
lsl.l #8,d1
lsl.l #2,d1
add.l patpos,d1 ;get ptr to current step
clr.w enbits
lea $dff0a0,a5 ;chanel 0
lea datach0(pc),a6
bsr.L chanelhandler
lea $dff0b0,a5 ;chanel 1
lea datach1(pc),a6
bsr.L chanelhandler
lea $dff0c0,a5 ;chanel 2
lea datach2(pc),a6
bsr.L chanelhandler
lea $dff0d0,a5 ;chanel 3
lea datach3(pc),a6
bsr.L chanelhandler
move.w #400,d0 ;** wait a while and set len
rep1: dbf d0,rep1 ; of oneshot to 1 word
move.w #$8000,d0
or.w enbits,d0
move.w d0,$dff096
cmp.w #1,datach0+14
bne.s rep2
clr.w datach0+14
move.w #1,$dff0a4
rep2: cmp.w #1,datach1+14
bne.s rep3
clr.w datach1+14
move.w #1,$dff0b4
rep3: cmp.w #1,datach2+14
bne.s rep4
clr.w datach2+14
move.w #1,$dff0c4
rep4: cmp.w #1,datach3+14
bne.s rep5
clr.w datach3+14
move.w #1,$dff0d4
rep5: add.l #16,patpos ;next step
cmp.l #64*16,patpos ;pattern finished ?
bne.s rep6
clr.l patpos
addq.l #1,trkpos ;next pattern in table
clr.l d0
move.w numpat,d0
cmp.l trkpos,d0 ;song finished ?
bne.s rep6
clr.l trkpos
rep6: movem.l (a7)+,d0-d7/a0-a6
rts
chanelhandler:
move.l (a0,d1.l),(a6) ;get period & action-word
addq.l #4,d1 ;point to next chanel
clr.l d2
move.b 2(a6),d2 ;get nibble for soundnumber
lsr.b #4,d2
beq.s chan2 ;no soundchange !
move.l d2,d4 ;** calc ptr to sample
lsl.l #2,d2
mulu #30,d4
lea pointers-4(pc),a1
move.l (a1,d2.l),4(a6) ;store sample-address
move.w (a3,d4.l),8(a6) ;store sample-len in words
move.w 2(a3,d4.l),18(a6) ;store sample-volume
move.l d0,-(a7)
move.b 2(a6),d0
and.b #$f,d0
cmp.b #$c,d0
bne.s ok3
move.b 3(a6),8(a5)
bra.s ok4
ok3: move.w 2(a3,d4.l),8(a5) ;change chanel-volume
ok4: move.l (a7)+,d0
clr.l d3
move.w 4(a3,d4),d3 ;** calc repeatstart
add.l 4(a6),d3
move.l d3,10(a6) ;store repeatstart
move.w 6(a3,d4),14(a6) ;store repeatlength
cmp.w #1,14(a6)
beq.s chan2 ;no sustainsound !
move.l 10(a6),4(a6) ;repstart = sndstart
move.w 6(a3,d4),8(a6) ;replength = sndlength
chan2: tst.w (a6)
beq.s chan4 ;no new note set !
move.w 22(a6),$dff096 ;clear dma
tst.w 14(a6)
bne.s chan3 ;no oneshot-sample
move.w #1,14(a6) ;allow resume (later)
chan3: bsr.L newrou
move.w (a6),(a4)
move.w (a6),16(a6) ;save note for effect
move.l 4(a6),0(a5) ;set samplestart
move.w 8(a6),4(a5) ;set samplelength
move.w (a6),6(a5) ;set period
move.w 22(a6),d0
or.w d0,enbits ;store dma-bit
move.w 18(a6),20(a6) ;volume trigger
chan4: rts
datach0: blk.w 11,0
dc.w 1
datach1: blk.w 11,0
dc.w 2
datach2: blk.w 11,0
dc.w 4
datach3: blk.w 11,0
dc.w 8
voi1: dc.w 0
voi2: dc.w 0
voi3: dc.w 0
voi4: dc.w 0
pointers: blk.l 15,0
notetable: dc.w 856,808,762,720,678,640,604,570
dc.w 538,508,480,453,428,404,381,360
dc.w 339,320,302,285,269,254,240,226
dc.w 214,202,190,180,170,160,151,143
dc.w 135,127,120,113,000
muzakoffset: dc.l 0
trkpos: dc.l 0
patpos: dc.l 0
numpat: dc.w 0
enbits: dc.w 0
timpos: dc.w 0
org $34000-$ba
load $34000-$ba
picdata:
blk.b 27186
picdata_end:
org $5606c
load $5606c
data1: blk.b 72888,0
even
data2: blk.b 55916,0
dataend:
0+14
bne.s rep2
clr.w datach0+14
move.w #1,$dff0a4
rep2: cmp.w #1,datach1+14
bne.s rep3
clr.w datach1+14
move.w #1,$dff0b4
rep3: cmp.w #1,datach2+14
bne.s rep4
clr.w datach2+14
move.w #1,$dff0c4
rep4: cmp.w #1,datach3+14
bne.s re
clr.w datach3+14
move.w #1,$dff0d4
rep5: add.l #16,patpos ;next step
cmp.l #64*16,patpos ;pattern finished ?
bne.s rep6
clr.l patpos
addq.l #1,trkpos ;next pattern in table
clr.l d0
move.w numpat,d0
cmp.l trkpos,d0 ;song finished ?
bne.s rep6
move.l $6c,oldirq
;move.l #newirq,$6c
move.w #$c000,$dff09a
; ---
bsr init2
bsr unpack
bsr fillcopper
bsr mt_init
; --------
8D loop -------------
8\:
wait:
move.l $dff004,d2
and.l #$0001ff00,d2
cmp.l #$1000,d2
bne.s wait
bsr copy
bsr scrolling
bsr kord
bsr sin_scroll
bsr put_it
bsr mt_music
btst #6,$bfe001
beq.s raus
bra main
newirq:
movem.l d0-d7/a0-a6,-(a7)
bsr scrolling
bsr copy
bsr kord
bsr sin_scroll
bsr put_it
bsr mt_music
movem.l (a7)+,d0-d7/a0-a6
dc.w $4ef9
oldirq:
dc.l 0
;---- close all ---------------
even
raus:
move.w #$000f,$dff096
move.w #$4000,$dff09a
move.l oldirq,$6c
move.w #$c000,$dff09a
; -------------------
move.l $4,a6
move.l gfxbase,a1
jsr -414(a6) ; gfx close
; ------------------------------
move.l gfxbase,a0
add.l #$32,a0
move.w #$0080,$dff096 ; copper dma stop
move.l oldcopper,(a0)
move.w #$8080,$dff096
; ------------------------------
move.l $4,a6
jsr -138(a6) ; multi erlauben
; ------------------------------
movem.l (a7)+,d0-d7/a0-a6
rts
;---- new copperlist ---
newcopper:
; sprite zeiger
sprite:
dc.w $0120,$0000,$0122,$0000 ; spr 1 address
dc.w $0124,$0000,$0126,$0000 ; spr 2 address
; --------------------------
dc.w $0180,$0000,$0182,$0fff ; hintergrundfarben
; fuer dpaint-pic
dc.w $008e,$4281,$0090,$80c1
dc.w $0092,$0038,$0094,$00d1
dc.w $0108,$00a0,$010a,$00a0
dc.w $0102
0104,$0000
dc.w $0100,$5200
dc.w $00e0,$0007,$00e2,$0000
dc.w $00e4,$0007,$00e6,$0028
dc.w $00e8,$0007,$00ea,$0050
dc.w $00ec,$0007,$00ee,$0078
dc.w $00f0,$0007,$00f2,$00a0
colors:
blk.b 128,10
round:
blk.l 120,0
dc.w $8009,$fffe
dc.w $0100,$1200
dc.w $0180,$0000,$0182,$0000
; spr colors
dc.w $01a2,$0000,$01a4,$00f0
dc.w $01a6,$000f,$01a8,$0ff0
dc.w $008e,$a081,$0090,$c3c1 ; left top/right bottom koordinaten
dc.w $0092,$0038,$0094,$00d0 ; data fetch start/stop
dc.w $0108,$0004,$010a,$0004 ; graphic modulus
dc.w $0102,$0000,$0104,$0024 ; bitpl. control r